package com.qujia.station.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qujia.common.annotation.Excel;
import com.qujia.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public class PhysicalCardBalanceListDto extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("id")
    private Long id;

    /**油企名称 */
    @ApiModelProperty(value = "油企名称")
    @Excel(name = "油企名称")
    private String enterpriseName;


    /**油站名称 */
    @ApiModelProperty(value = "油站名称")
    @Excel(name = "油站名称")
    private String stationName;

    /**油企id */
    @ApiModelProperty(value = "油企id")
    private Long enterpriseId;

    /**油站id */
    @ApiModelProperty(value = "油站id")
    private String stationId;

    /**持卡人姓名 */
    @ApiModelProperty(value = "持卡人姓名")
    @Excel(name = "持卡人")
    private String userName;

    /**持卡人手机号 */
    @ApiModelProperty(value = "持卡人手机号")
    @Excel(name = "订单号")
    private String userPhone;

    /**订单号 */
    /**订单号 充值时自己生成订单号，消费时与pay_order表订单号一致 */
    @ApiModelProperty(value = "订单号 充值时自己生成订单号，消费时与pay_order表订单号一致")
    @Excel(name = "订单号")
    private String balanceNo;

    /**订单类型：cz:充值; xf:消费 */
    @ApiModelProperty(value = "订单类型：cz:充值; xf:消费")
    @Excel(name = "订单类型",readConverterExp="cz:充值; xf:消费")
    private String balanceType;

    /**充值/消费金额 */
    @ApiModelProperty(value = "充值/消费金额")
    @Excel(name = "订单金额")
    private BigDecimal amount;

    /**充值/消费后余额 */
    @ApiModelProperty(value = "充值/消费后余额")
    @Excel(name = "余额")
    private BigDecimal balanceAmount;

    /**实体卡号 */
    @ApiModelProperty(value = "实体卡号")
    @Excel(name = "卡号")
    private String physicalCardNo;

    /**持卡人公司 */
    @ApiModelProperty(value = "企业名称")
    @Excel(name = "企业名称")
    private String userCompany;

    /**实体卡名称 */
    @ApiModelProperty(value = "卡名称")
    @Excel(name = "卡名称")
    private String physicalCardName;

    @ApiModelProperty(value = "充值/消费时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**是否充值/消费成功：0，未成功；1，成功 */
    @ApiModelProperty(value = "是否充值/消费成功：0，未成功；1，成功")
    private String status;

    /**开始时间 */
    @ApiModelProperty(value = "开始时间")
    private String beginTime;

    /**结束时间 */
    @ApiModelProperty(value = "结束时间")
    private String endTime;

    /**消费订单是否删除 */
    @ApiModelProperty(value = "订单是否删除 0 表示未删除，1 表示已删除")
    private String isDeleted;

    /**
     * 充值/消费类型，xj:现金，pos:聚合支付，bka:后台增加，czkxf:实体-储值卡消费，dekxf:实体-定额卡消费，ref:充值退款
     */
    private String payment;

    /**
     * 实体卡移动消费订单退款状态，1 未退款，2 退款中，3：退款成功，4：退款失败
     */
    @ApiModelProperty(value = "实体卡移动消费订单退款状态，1 未退款，2 退款中，3：退款成功，4：退款失败")
    private String refundStatus;

    private Integer invoiceStatus;

    @ApiModelProperty(value = "实体卡充值总计")
    private BigDecimal totalRechargeAmt;

    @ApiModelProperty(value = "实体卡消费总计")
    private BigDecimal totalConsumptionAmt;

    @ApiModelProperty(value = "实体卡余额总计")
    private BigDecimal totalBalanceAmt;

    /**支付类型*/
    private List<String> paymentList;

    /**操作人*/
    private Integer operator;

    @ApiModelProperty(value = "实体卡类型，czk : 储值卡，dek：定额卡")
    private String physicalCardType;

    @ApiModelProperty(value = "充值立减")
    private BigDecimal rechargeDiscount;

    @ApiModelProperty(value = "消费立减")
    private BigDecimal consumptionDiscount;

    private List<Long> enterpriseIdListForAuthor;

    public List<Long> getEnterpriseIdListForAuthor() {
        return enterpriseIdListForAuthor;
    }

    public void setEnterpriseIdListForAuthor(List<Long> enterpriseIdListForAuthor) {
        this.enterpriseIdListForAuthor = enterpriseIdListForAuthor;
    }

    public Integer getInvoiceStatus() {
        return invoiceStatus;
    }

    public void setInvoiceStatus(Integer invoiceStatus) {
        this.invoiceStatus = invoiceStatus;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getEnterpriseName() {
        return enterpriseName;
    }

    public void setEnterpriseName(String enterpriseName) {
        this.enterpriseName = enterpriseName;
    }

    public String getStationName() {
        return stationName;
    }

    public void setStationName(String stationName) {
        this.stationName = stationName;
    }

    public Long getEnterpriseId() {
        return enterpriseId;
    }

    public void setEnterpriseId(Long enterpriseId) {
        this.enterpriseId = enterpriseId;
    }

    public String getStationId() {
        return stationId;
    }

    public void setStationId(String stationId) {
        this.stationId = stationId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserPhone() {
        return userPhone;
    }

    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone;
    }

    public String getBalanceNo() {
        return balanceNo;
    }

    public void setBalanceNo(String balanceNo) {
        this.balanceNo = balanceNo;
    }

    public String getBalanceType() {
        return balanceType;
    }

    public void setBalanceType(String balanceType) {
        this.balanceType = balanceType;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getBalanceAmount() {
        return balanceAmount;
    }

    public void setBalanceAmount(BigDecimal balanceAmount) {
        this.balanceAmount = balanceAmount;
    }

    public String getPhysicalCardNo() {
        return physicalCardNo;
    }

    public void setPhysicalCardNo(String physicalCardNo) {
        this.physicalCardNo = physicalCardNo;
    }

    public String getUserCompany() {
        return userCompany;
    }

    public void setUserCompany(String userCompany) {
        this.userCompany = userCompany;
    }

    public String getPhysicalCardName() {
        return physicalCardName;
    }

    public void setPhysicalCardName(String physicalCardName) {
        this.physicalCardName = physicalCardName;
    }

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String getBeginTime() {
        return beginTime;
    }

    @Override
    public void setBeginTime(String beginTime) {
        this.beginTime = beginTime;
    }

    @Override
    public String getEndTime() {
        return endTime;
    }

    @Override
    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public String getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(String isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getPayment() {
        return payment;
    }

    public void setPayment(String payment) {
        this.payment = payment;
    }

    public String getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(String refundStatus) {
        this.refundStatus = refundStatus;
    }

    public BigDecimal getTotalRechargeAmt() {
        return totalRechargeAmt;
    }

    public void setTotalRechargeAmt(BigDecimal totalRechargeAmt) {
        this.totalRechargeAmt = totalRechargeAmt;
    }

    public BigDecimal getTotalConsumptionAmt() {
        return totalConsumptionAmt;
    }

    public void setTotalConsumptionAmt(BigDecimal totalConsumptionAmt) {
        this.totalConsumptionAmt = totalConsumptionAmt;
    }

    public BigDecimal getTotalBalanceAmt() {
        return totalBalanceAmt;
    }

    public void setTotalBalanceAmt(BigDecimal totalBalanceAmt) {
        this.totalBalanceAmt = totalBalanceAmt;
    }

    public List<String> getPaymentList() {
        return paymentList;
    }

    public void setPaymentList(List<String> paymentList) {
        this.paymentList = paymentList;
    }

    public Integer getOperator() {
        return operator;
    }

    public void setOperator(Integer operator) {
        this.operator = operator;
    }

    public String getPhysicalCardType() {
        return physicalCardType;
    }

    public void setPhysicalCardType(String physicalCardType) {
        this.physicalCardType = physicalCardType;
    }

    public BigDecimal getRechargeDiscount() {
        return rechargeDiscount;
    }

    public void setRechargeDiscount(BigDecimal rechargeDiscount) {
        this.rechargeDiscount = rechargeDiscount;
    }

    public BigDecimal getConsumptionDiscount() {
        return consumptionDiscount;
    }

    public void setConsumptionDiscount(BigDecimal consumptionDiscount) {
        this.consumptionDiscount = consumptionDiscount;
    }

    @Override
    public String toString() {
        return "PhysicalCardBalanceListDto{" +
                "enterpriseId='" + enterpriseId + '\'' +
                ", stationId='" + stationId + '\'' +
                "enterpriseName='" + enterpriseName + '\'' +
                ", stationName='" + stationName + '\'' +
                ", userName='" + userName + '\'' +
                ", userPhone='" + userPhone + '\'' +
                ", balanceNo='" + balanceNo + '\'' +
                ", balanceType='" + balanceType + '\'' +
                ", amount=" + amount +
                ", balanceAmount=" + balanceAmount +
                ", physicalCardNo='" + physicalCardNo + '\'' +
                ", userCompany='" + userCompany + '\'' +
                ", physicalCardName='" + physicalCardName + '\'' +
                ", createTime=" + createTime +
                ", status='" + status + '\'' +
                ", beginTime='" + beginTime + '\'' +
                ", endTime='" + endTime + '\'' +
                ", isDeleted='" + isDeleted + '\'' +
                '}';
    }
}
